using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class DataTypes
{
	public static void Main(string[] args)
	{
		// Comments
		/*
			Multiple line
		*/
		/** 
			XML Comments 
		*/
		
		// PRIMITIVE TYPES:
		bool x = true;
		
		/*
		byte
		char
		short, int, long
		float, double
		*/
		
		// REFERENCE TYPES:
		object o = null;
		string hello = "hellow";
		
		// CONVERSIONS:
		// int to string 
		// int x = 123; 
		// string y = Integer.tostring(x);  // y is "123"
		
		string y = "456"; 
		x = int.Parse(y);   // x is 456
		
		// double to int
		double z = 3.5; 
		x = (int) z;   // x is 3  (truncates decimal)
		
		// CONSTANTS
		const double PI = 3.14;
		
		// ENUMS
		enum Action {Start, Stop, Rewind, Forward};
		
		Action a = Action.Stop;
		if (a != Action.Start)
		  Console.WriteLine(a);               // Prints "Stop"
		  
		/*
		// Special type of class 
		enum Status {
		  Flunk(50), Pass(70), Excel(90);
		  private const int value;
		  Status(int value) { this.value = value; }
		  public int value() { return value; } 
		};
		
		Status s = Status.Pass;
		Console.WriteLine(s.value());      // Prints "70"
		*/
		
		// OPERATOS
		/*
			Comparison
			==  <  >  <=  >=  !=

			Arithmetic
			+  -  *  /
			%  (mod)
			/   (integer division if both operands are ints)
			Math.Pow(x, y)

			Assignment
			=  +=  -=  *=  /=   %=   &=  |=  ^=  <<=  >>=  >>>= [EXCEPT]  ++  --

			Bitwise
			&  |  ^   ~  <<  >>  >>>

			Logical
			&&  ||  &  |   ^   !
		*/
	}
}
